Social computing personas for protecting identity in online social interactions

ABSTRACT

A system and method for generating a plurality of personas for an account of a user is disclosed. The present invention uses an account engine to receive information for the plurality of personas and to associate the information for the plurality of personas to the account. The information for each of the plurality of personas includes a visibility level. A persona engine receives a selection from the user and transmits the selected persona to the user based on the selection. An authority engine determines an appearance of the selected persona based on the visibility level.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §119(e) to U.S.Provisional Patent Application No. 61/526,567, filed on Aug. 23, 2011,entitled “Social Computing Personas for Protecting Identity in OnlineSocial Interactions” which is herein incorporated by reference in itsentirety.

BACKGROUND

The specification relates to a system and method for generating personasfor an account of a user. In particular, the specification relates togenerating personas for a user account that includes a visibility level,a reputation and an ability to share a persona with other users.

The internet is becoming increasingly more social. Users enjoy thesocial interactions and frequently have entire friendships with peoplethey have never met. Users are encouraged to post their real identitiesbecause people are more comfortable chatting and revealing personaldetails to another user that is posting with a name and not anonymously.Because these interactions become part of a permanent record, however,users are also encouraged to post anonymously. In addition, when usersreveal their identities on the internet, it leaves them more vulnerableto stalking, identity theft and harassment. As a result, users exercisecaution in disclosing personal details.

While the risk of disclosing a user's real identity can be avoided viathe creation of multiple primary accounts in a system, switching betweenvarious identities for the purpose of revealing varying levels ofpersonal information becomes burdensome and may be difficult for userswith little related technical knowledge to manage. For example, eachaccount has its own name and password and the user may have troubleremembering which account was used to perform different activities.

SUMMARY OF THE INVENTION

In some examples, a persona application includes an account engine, acommunication engine, a persona engine, an authority engine and a userinterface engine. The account engine receives information for generatingpersonas for a user and associates the information for the personas withthe account. The personas include at least one of the user's realidentity, an alter ego and an anonymous identity. The information foreach persona includes a name of the persona, a picture, a description,permissions, a visibility level, the option to share a persona and anumber of websites associated with the user.

In some embodiments, a persona engine receives a selection from the userand transmits a selected persona to the user based on the selection. Thepersona engine transmits the information for the selected persona to auser interface engine in response to the user submitting a post, acomment, a picture, a video, a message, an article or a game. In oneembodiment, the persona engine provides an option to share one of thepersonas with other account holders. The sharing property includessharing with any other account holders and sharing with selectedfriends.

In one embodiment, an authority engine determines an appearance of theselected persona based on the visibility level for the persona. Thevisibility level is selected among public, public over a threshold age,visible to selected users and hidden from everyone.

In one embodiment, the authority engine authorizes other account holdersto access the user's real identity based on a defined permission. Thepermission is chosen among allowing all friends, selected friends, allaccount holders or anyone to access the user's real identity. In someexamples, the authority engine assigns a reputation for the selectedpersona according activities and feedback associated with the persona.The feedback includes one of a number of views, a number of comments anda number of indications of approval of one of the activities of theuser. The activities include submitting a post, a comment, a picture, avideo, a message, an article and a game.

In another embodiment, a method for generating personas for an accountincludes receiving information for the personas from the user,associating the information for the plurality of the personas to theaccount and responsive to receiving a selection from the user,transmitting a selected persona to the user based on the selection.

BRIEF DESCRIPTION OF THE DRAWINGS

The specification is illustrated by way of example, and not by way oflimitation in the figures of the accompanying drawings in which likereference numerals are used to refer to similar elements.

FIG. 1 is a high-level block diagram illustrating one embodiment of asystem for generating a plurality of personas for an account of a user.

FIG. 2 is a block diagram of one embodiment of a persona application inmore detail.

FIG. 3 is a graphic representation of a user interface that is generatedby the user interface engine for creating personas for an account of auser.

FIG. 4 is a graphic representation of a user interface that is generatedby the user interface engine for displaying as one of the personas.

FIG. 5 is a flow diagram of one embodiment of a method for generating aplurality of personas.

FIG. 6 is a flow diagram of one embodiment of a method for displaying asone persona according to a selection.

FIG. 7 is a flow diagram of one embodiment of a method for sharing apersona between users.

DETAILED DESCRIPTION

A system and method for generating a plurality of personas for anaccount of a user are described below. In the following description, forpurposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the specification. It willbe apparent, however, to one skilled in the art that the invention canbe practiced without these specific details. In other instances,structures and devices are shown in block diagram form in order to avoidobscuring the description. For example, the present embodiment isdescribed in one embodiment below primarily with reference to userinterfaces and particular hardware. However, the description applies toany type of computing device that can receive data and commands, and anyperipheral devices providing services.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the description. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment.

Some portions of the detailed descriptions that follow are presented interms of algorithms and symbolic representations of operations on databits within a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self consistent sequence of steps leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The present embodiment of the specification also relates to an apparatusfor performing the operations herein. This apparatus may be speciallyconstructed for the required purposes, or it may comprise ageneral-purpose computer selectively activated or reconfigured by acomputer program stored in the computer. Such a computer program may bestored in a computer readable storage medium, such as, but is notlimited to, any type of disk including floppy disks, optical disks,CD-ROMs, and magnetic disks, read-only memories (ROMs), random accessmemories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flashmemories including USB keys with non-volatile memory or any type ofmedia suitable for storing electronic instructions, each coupled to acomputer system bus.

The specification can take the form of an entirely hardware embodiment,an entirely software embodiment or an embodiment containing bothhardware and software elements. In a preferred embodiment, thespecification is implemented in software, which includes but is notlimited to firmware, resident software, microcode, etc.

Furthermore, the description can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

Finally, the algorithms and displays presented herein are not inherentlyrelated to any particular computer or other apparatus. Variousgeneral-purpose systems may be used with programs in accordance with theteachings herein, or it may prove convenient to construct morespecialized apparatus to perform the required method steps. The requiredstructure for a variety of these systems will appear from thedescription below. In addition, the specification is not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the specification as described herein.

System Overview

FIG. 1 illustrates a block diagram of a system 100 for generating aplurality of personas for an account of a user according to someexamples. The illustrated description of a system 100 for generating aplurality of personas for an account of a user includes user devices 115a, 115 n that are accessed by users 125 a, 125 n, a social networkserver 101 and a third-party server 107. In the illustrated embodiment,these entities are communicatively coupled via a network 105. In FIG. 1and the remaining figures, a letter after a reference number, such as“115 a” is a reference to the element having that particular referencenumber. A reference number in the text without a following letter, suchas “115,” is a general reference to any or all instances of the elementbearing that reference number. Although only two devices areillustrated, persons of ordinary skill in the art will recognize thatany number of user devices 115 n are available to any number of users125 n.

In one embodiment, the persona application 103 a is operable on thesocial network server 101, which is coupled to the network 105 viasignal line 104. The social network server 101 also includes a socialnetwork application 109 and storage for a social graph 179. In oneembodiment, the persona application 103 a is a component of the socialnetwork application 109. Although only one social network server 101 isshown, persons of ordinary skill in the art will recognize that multipleservers may be present.

A social network is any type of social structure where the users areconnected by a common feature, for example, Google Plus. The commonfeature includes friendship, family, work, an interest, etc. The commonfeatures are provided by one or more social networking systems, such asthose included in the system 100, including explicitly-definedrelationships and relationships implied by social connections with otherusers, where the relationships are defined in a social graph 179. Thesocial graph 179 is a mapping of all users in a social network and howthey are related to each other. The social graph 179 is included in thememory 237 that is described below in detail.

In another embodiment, the persona application 103 b is stored on athird-party server 107, which is connected to the network 105 via signalline 106. The third-party server 107 includes software for generating awebsite (not shown). In one embodiment, the persona application 103generates a user interface that is incorporated into the website.Furthermore, while only one third-party server 107 is shown, the system100 could include one or more third-party servers 107.

In yet another embodiment, the persona application 103 c is stored on auser device 115 a, which is connected to the network 105 via signal line108. The user 125 a interacts with the user device 115 a via signal line110. The user device 115 a, 115 n is any computing device that includesa memory (not shown) and a processor (not shown). For example, the userdevice 115 a, 115 n is a personal computer (“PC”), a cell phone (e.g., asmart phone, a feature phone, a dumb phone, etc.), a tablet computer (ortablet PC), a laptop, etc. One having ordinary skill in the art willrecognize that other types of user devices 115 a, 115 n are possible. Inone embodiment, the system 100 comprises a combination of differenttypes of user devices 115 a, 115 n.

The network 105 is a conventional type, wired or wireless, and may haveany number of configurations such as a star configuration, token ringconfiguration or other configurations known to those skilled in the art.Furthermore, the network 105 may comprise a local area network (LAN), awide area network (WAN) (e.g., the Internet), and/or any otherinterconnected data path across which multiple devices may communicate.In yet another embodiment, the network 105 may be a peer-to-peernetwork. The network 105 may also be coupled to or includes portions ofa telecommunications network for sending data in a variety of differentcommunication protocols. In yet another embodiment, the network 105includes Bluetooth communication networks or a cellular communicationsnetwork for sending and receiving data such as via short messagingservice (SMS), multimedia messaging service (MMS), hypertext transferprotocol (HTTP), direct data connection, WAP, email, etc.

The persona application 103 receives information for generating personasfor a user account. In one embodiment, the persona application 103receives information from user devices 115 a, 115 n. The personaapplication 103 receives information for the personas, associates theinformation for the personas to the user account and responsive toreceiving a selection from the user, transmits a selected persona to theuser device 115 based on the selection.

Persona Application 103

Referring now to FIG. 2, the persona application 103 is shown in moredetail. FIG. 2 is a block diagram of a computing device 200 thatincludes the persona application 103, a memory 237, a processor 235, acommunication unit 241 and storage 143. In one embodiment, the computing200 device is a social network server 101. In another embodiment, thecomputing device 200 is a third-party server 107. In yet anotherembodiment, the computing device 200 is a user device 115 a.

The processor 235 comprises an arithmetic logic unit, a microprocessor,a general purpose controller or some other processor array to performcomputations and provide electronic display signals to a display device.The processor 235 is coupled to the bus 220 for communication with theother components via signal line 236. Processor 235 processes datasignals and may comprise various computing architectures including acomplex instruction set computer (CISC) architecture, a reducedinstruction set computer (RISC) architecture, or an architectureimplementing a combination of instruction sets. Although only a singleprocessor is shown in FIG. 2, multiple processors may be included. Theprocessing capability may be limited to supporting the display of imagesand the capture and transmission of images. The processing capabilitymight be enough to perform more complex tasks, including various typesof feature extraction and sampling. It will be obvious to one skilled inthe art that other processors, operating systems, sensors, displays andphysical configurations are possible.

The memory 237 stores instructions and/or data that may be executed byprocessor 235. The memory 237 is coupled to the bus 220 forcommunication with the other components via signal line 238. Theinstructions and/or data may comprise code for performing any and/or allof the techniques described herein. The memory 237 may be a dynamicrandom access memory (DRAM) device, a static random access memory (SRAM)device, flash memory or some other memory device known in the art. Inone embodiment, the memory 237 also includes a non-volatile memory orsimilar permanent storage device and media such as a hard disk drive, afloppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device,a DVD-RW device, a flash memory device, or some other mass storagedevice known in the art for storing information on a more permanentbasis.

In one embodiment, the computing device also comprises storage 143 thatincludes user information 240 and a social graph 179 and is coupled tothe bus 220 via signal line 244. The user information 240 includesaccount information for users and persona information for each account.In one embodiment, the user information 240 also includes reputationinformation. The social graph 179 stores explicitly-definedrelationships and relationships implied by social connections betweenusers in the social network. In some examples, the social graph 179 canreflect a mapping of all users in the social network and how they arerelated.

The communication unit 241 receives data from the user devices 115, thethird-party server 107 and/or the social network server 101 dependingupon where the persona application 103 is stored. The communication unit241 transmits the data to the persona application 103. The communicationunit 241 is coupled to the bus 220 via signal line 242. In oneembodiment, the communication unit 241 includes a port for directphysical connection to the network 105 or to another communicationchannel. For example, the communication unit 241 includes a USB, SD,CAT-5 or similar port for wired communication with the network 105. Inanother embodiment, the communication unit 241 includes a wirelesstransceiver for exchanging data with the network 105, or with anothercommunication channel, using one or more wireless communication methods,such as IEEE 802.11, IEEE 802.16, BLUETOOTH®, near field communication(NFC) or another suitable wireless communication method. In oneembodiment, the communication unit 241 includes a NFC chip thatgenerates a radio frequency (RF) for short-range communication.

In one embodiment, the persona application 103 comprises a communicationengine 201, an account engine 207, a persona engine 213, an authorityengine 219 and a user interface engine 230.

The communication engine 201 is software including routines forreceiving and routing requests to the other persona application 103modules and for relaying outputs via the communication unit 241 to athird-party server, a social network server 101 or a user device 115 a.In one embodiment, the communication engine 201 is a set of instructionsexecutable by the processor 235 to provide the functionality describedbelow for receiving and routing requests. In another embodiment, thecommunication engine 201 is stored in the memory 237 of the computingdevice 200 and is accessible and executable by the processor 235. Ineither embodiment, the communication engine 201 is adapted forcooperation and communication with the processor 235 and othercomponents of the computing device 200 via signal line 221.

The communication engine 201 receives requests from the user through theuser interface engine 230 or via the communication unit 241. In oneembodiment, the received request is for registering an account andcorresponding account registration information is received with therequest. In another embodiment, the request is for creating personas foran account and the communication engine 201 receives information for thepersonas from the user's input. For example, the information includes aname of the persona, an icon, a description, permission to performcertain actions and a sharing property. In another example, theinformation also includes a visibility level. In yet another embodiment,the communication engine 201 receives requests for displaying allpersonas of a user and for displaying a user as one of the personas.

The communication engine 201 routes the received requests to the accountengine 207 and the persona engine 213 accordingly. For example, if thereceived request is for registering an account or creating one or morepersonas, it is routed to the account engine 207. The correspondingregistration information is transmitted with the request to the accountengine 207 as well. If a request for displaying all personas of a useror for displaying a user as one of the personas is received, thecommunication engine 201 transmits it to the persona engine 213.

In one embodiment, the communication engine 201 also generates and sendsinquiries to other users via the communication unit 241 based on theinformation transmitted from the persona engine 213 and receives answersfrom the friends. For example, when the communication engine 201receives a list of friends from the persona engine 213 with whom theuser wants to share a persona, the communication engine 201 generatesand transmits a set of inquiries to invite people on the list to sharethe persona. In one embodiment, the inquiries include information forthe shared personas. The communication engine 201 then receives answersfrom the friends via the communication unit 241. In one embodiment, thecommunication engine 201 transmits the answers and the information forthe shared personas back to the persona engine 213. In anotherembodiment, the communication engine 201 only transmits the answers tothe persona engine 213.

In one embodiment, the communication engine 201 routes information fromthe account engine 207 and the persona engine 213 to the user interfaceengine 230. For example, the communication engine 201 receives accountinformation and a set of personas for the account from the accountengine 207 and transmits the account information and personas to theuser interface engine 230 to generate a display for the user that isrendered on the user device 115. In another example, the communicationengine 201 receives information for all personas or information for aselected persona from the persona engine 213 and sends the informationto the user interface engine 230.

In one embodiment, the communication engine 201 also receives a resultof sharing personas with friends from the persona engine 213. Forexample, the result includes information for the shared personas, suchas the name, the icon and the description of each shared persona. Thecommunication engine 201 transmits the result to the user interfaceengine 230 to display the result (i.e., the information for the sharedpersonas) to the friends. Furthermore, the result includes a sharingproperty for each shared persona, e.g., sharing with Jessica Yu andMelissa Alien. The friend who shares the persona will see others whoshare the persona too. In some examples, the result is a messageinforming the user that a friend has refused the invitation.

The account engine 207 is software including routines for receivingaccount registration information. In one embodiment, the account engine207 is a set of instructions executable by the processor 235 to providethe functionality described below for receiving account information fora user and storing the information. In another embodiment, the accountengine 207 is stored in the memory 237 of the computing device 200 andis accessible and executable by the processor 235. In either embodiment,the account engine 207 is adapted for cooperation and communication withthe processor 235 and other components of the computing device 200 viasignal line 222.

In one embodiment, the account engine 207 receives a request forregistering an account from the communication engine 201. The accountengine 207 obtains registration information for the account, e.g., aname, a password, an age, optional personal information, an emailaddress and/or other contact information. In one embodiment, the accountengine 207 receives information for linking the account with a socialnetwork application 109. The account engine 207 generates an accountusing the registration information and stores the account andcorresponding registration information as user information 240 instorage 143. In one embodiment, the account engine 207 generates a filefor each account and stores the file as user information 240. In anotherembodiment, the account engine 207 creates a table and adds an entry ofthe account in the table for mapping the registration information to theaccount.

The persona engine 213 is software including routines for generatingpersonas, for associating the personas with a user account and fortransmitting a selected persona to the user. In one embodiment, thepersona engine 213 is a set of instructions executable by the processor235 to provide the functionality described below for generatingpersonas. In another embodiment, the persona engine 213 is stored in thememory 237 of the computing device 200 and is accessible and executableby the processor 235. In either embodiment, the persona engine 213 isadapted for cooperation and communication with the processor 235 andother components of the computing device 200 via signal line 223.

The persona engine 213 receives a request for creating a plurality ofpersonas for an account from the communication engine 201. The personasinclude a user persona, an alter ego and a one-time anonymous persona.The alter ego includes a general persona, such as Sara1985 or personafor a specific interest, such as FoodGirl1 (interested in food) and DarkAvenger (interested in comics). The persona engine 213 associates theinformation for the personas with the corresponding user account. In oneembodiment, the persona engine 213 saves the information for thepersonas in the account file. In another embodiment, the persona engine213 generates another file for storing the information for the pluralityof personas and associates the personas file with the account file. Inyet another embodiment, the persona engine 213 appends an item to theaccount entry in the table for mapping the information for the pluralityof personas to the account.

In one embodiment, the persona engine 213 receives a request from thecommunication engine 201 to retrieve all personas for an account for auser to choose a persona. The persona engine 213 retrieves theinformation for all personas including the user's real identity from theuser information 240. In one embodiment, the persona engine 213 onlyretrieves the names and pictures of the personas. In another embodiment,the persona engine 213 also retrieves the visibility levels of all thepersonas if there are visibility levels received when creating thepersonas. The visibility levels are managed by the authority engine 219and discussed in greater detail below. The persona engine 213 transmitsthe results with instructions to generate a user interface fordisplaying the results to the user interface engine 230.

In one embodiment, the persona engine 213 also arranges the personas,e.g., in order that the most recently or the most frequently usedpersona appears first. In another embodiment, the persona engine 213predicts which personas are most likely to be chosen by the user andarranges the personas according to the likelihood of selection. Theprediction is based on the relevancy between the description of thepersona and the activity that the user wants the persona to do. Forexample, for a user that wants to upload a picture revealing theenvironment pollution of a city, the persona engine 213 identifies thepersona EarthSecurer with a description about being an environmentalistas the suggested persona for the user. The prediction is also based onthe usage history of the personas. For example, if the persona DarkAvenger is often used to comment on posts related to anime, then thepersona Dark Avenger is arranged before other personas when the uservisits an anime blog.

In one embodiment, the persona engine 213 receives a selection of apersona from the user through the communication engine 201. For example,when the user clicks the persona Dark Avenger on a website that displaysthe user interface (UI), the persona engine 213 receives the selectionof the persona Dark Avenger from the user interface engine 230 via thecommunication engine 201. In one embodiment, the persona engine 213retrieves the visibility level of the selected persona from the userinformation 240 if it was not previously retrieved with the request fordisplaying all personas. The persona engine 213 transmits the selectedpersona, for example, including a name, a picture and its visibilitylevel to the user interface engine 230 to further display the selectedpersona and a list of visibility levels in the GUI.

In one embodiment, the persona engine 213 includes a sharing option thatassociates a single persona with multiple users. This is particularlyhelpful in a corporate setting where, for example, multiple usersmaintain a persona for posting about the company on social networks. Inanother example, multiple users that maintain the same blog use a singlepersona for leaving comments on the blog or other peoples' blogs. Inthis embodiment, the persona engine 213 retrieves user information 240for the shared persona and the list of friends with whom the user wantsto share the persona. In some examples, the persona engine 213 does thisresponsive to creating a new persona.

The persona engine 213 generates a persona sharing inquiry for the listof friends and transmits the inquiry to the communication engine 201 forsending to the friends via the communication unit 241. If the answerfrom a friend is yes, the persona engine 213 associates the informationfor the shared persona with the friend account, for example, by storingthe information of the shared persona in the friend account file or byappending an entry in the table for mapping the information of theshared persona to the friend account. The persona engine 213 alsoinstructs the user interface engine 230 to display information for theshared persona to the friend through the communication engine 201. Ifthe answer is no, the persona engine 213 does nothing but inform theuser that the offer was not accepted by the friend via the communicationengine 201.

In one embodiment, the information for the shared persona, such as thename, the icon, the description, the permissions, the option to sharethe persona and the visibility level if there is one, cannot be changedby the friends who are invited to share the persona, but can be modifiedonly by the creator of the persona. In another embodiment, thepermissions for the shared persona can be modified by anyone who haspermission to use the persona. For example, a friend who is not thecreator changes the permission from allowing anyone to see the user nameassociated with the user's real identity to only allowing the user'sfriends to see the user name associated with the user's real identity,without changing the permission of the shared persona that the creatorand/or other users own. In yet another embodiment, the visibility levelis modified anytime an owner uses the shared persona. In yet anotherembodiment, the friend who shares the persona can further share it withother users.

The authority engine 219 is software including routines for managing thevisibility level of the persona by determining an appearance of apersona, managing the permissions by authorizing other account holdersto view the user's real identity and assigning a reputation for apersona. In one embodiment, the authority engine 219 is a set ofinstructions executable by the processor 235 to provide thefunctionality described below and saving the user information 240 to thememory 237. In another embodiment, the authority engine 219 is stored inthe memory 237 of the computing device 200 and is accessible andexecutable by the processor 235. In either embodiment, the authorityengine 219 is adapted for cooperation and communication with theprocessor 235 and other components of the computing device 200 viasignal line 224.

The authority engine 219 determines an appearance of a persona based onthe visibility level and saves the visibility level as user information240 that is retrieved by the persona engine 213. The visibility level isone of public, public to everyone over a threshold age (e.g. visible toall users over 13), selectively visible (e.g., visible to all peoplewithin a group, a network or only to selected users) and hidden fromeveryone (e.g. one-time anonymous). In one embodiment, the visibilitylevel is set to a default visibility level during creation of thepersona. The default visibility level includes public and selectivelyvisible. The default visibility level is confirmed or changed when auser requests displaying as one of the personas. When the user interfaceengine 230 receives a selection of one of the personas, the defaultvisibility level of the selected persona is provided as well as otherpossible visibility levels.

For example, the authority engine 219 creates a persona named DarkAvenger and associates the information for Dark Avenger with the user,Sara Johnson. The authority engine 219 generates permissions that areassociated with the persona, Dark Avenger. For example, Sara's identityas Dark Avenger can be hidden from everyone (a secret identity), grantedonly to specific individuals, granted to all individuals in a group(such as a Google Plus Circle), granted to all individuals in hernetwork, granted to all users in the universe of the network, granted tousers over a threshold age or granted to the public. These settings canbe modified for the persona such that a real identity could be revealed.In another example all of Sara Johnson's friends can view Sara'sidentity even though the Dark Avenger persona is displayed. In anotherexample, only Sara's friends will see the Dark Avenger persona andeveryone else sees the user posting as an anonymous user. In addition topermission data, the persona engine 213 associates an image and adescription of the personality for Dark Avenger (e.g., interested inanime and duck hunting) with the account. In another embodiment, thevisibility level is determined only when a user requests the display ofone of the personas. All visibility levels are displayed for theselected persona.

Once a visibility level for the selected persona is chosen and receivedfrom the user interface engine 230, the authority engine 219 determinesthe appearance of the selected persona according to the receivedvisibility level. For example, if the received visibility level ispublic, then the corresponding persona is determined to be visible toanyone who accesses the activity (e.g., the persona is displayed inassociation with a comment, a post, a picture, a video, etc.). If thereceived visibility level is private over a threshold age, the authorityengine 219 displays the persona if the viewer is over the threshold ageand blocks the comment entirely if the viewed is under the thresholdage.

If the received visibility level is selected as visible to all friends,the persona is visible to all the user's friends, but not visible toothers. When others access the activity of the user, they see anactivity performed by an anonymous or guest user. For example, they seean anonymous post. The friends see, for example, the persona name DarkAvenger, while accessing the activity of the user. In some examples, thereceived visibility level is one-time. In those cases, the authorityengine 219 determines the corresponding persona to be anonymous toeveryone. This is ideal for situations where the user does not want theactivity to be attributed to him or her. For example, the user wants toexpress displeasure over a post.

In one embodiment, the authority engine 219 manages the permissions byauthorizing other account holders to view the user's real identity whileaccessing the user's persona, based on the permission received whencreating the persona. The permission is chosen from allowing allfriends, selected friends, all account holders or anyone to see theuser's real identity. Accordingly, the authority engine 219 authorizesthe corresponding group of people to access the user's real identity.For example, if Tom Johnson is in the group of people permitted by theuser Sara Johnson to see Dark Avenger's identity, he is authorized tosee Sara Johnson's name in her comments as Dark Avenger. In oneembodiment, the user's real identity of Sara Johnson is revealed to TomJohnson when Tom Johnson hovers over the persona named Dark Avengerusing a mouse or when Tom Johnson clicks on the Dark Avenger and a newwindow pops up with Dark Avenger's profile, which includes a field forrevealing Sara Johnson as the user. In yet another embodiment, TomJohnson sees the annotation “Sara Johnson posting as Dark Avenger” whenhe accesses the comment.

In one embodiment, the image for the personas is an image of the userwith a mask overlaid onto the user's face. In another embodiment, theimage for the persona is a unique image provided by the user, but whendisplayed a consistent visual is overlaid to disambiguate them fromnon-persona users. For example, a small “mask” icon could indicate thatDark Avenger is a persona and not a real identity. In another example avariety of standard visual indicators are selected to indicate the typeof persona such as corporation, secret identity, character, parody, etc.In the case of a corporate persona, the persona is confirmed anddisplayed as authoritative while remaining a persona.

In one embodiment, the authority engine 219 builds a reputation for eachpersona. Each persona for an account has its own reputation because ifthe reputation was related to all personas, it would risk compromisingthe user's privacy by revealing that the user was both Dark Avenger andFoodGirl1. The authority engine 219 records activities and feedback forthe activities of each persona and assigns a reputation to each personabased on the activities and feedback. For example, Sara Johnson has twopersonas, e.g., Dark Avenger and FoodGirl1. If FoodGirl1 is used tosubmit a lot of posts, comments, pictures and videos that receive manyviews, comments and approval indications, then FoodGirl1 is assigned acorrespondingly high reputation. Conversely, if Dark Avenger is used toleave nasty comments and mock bloggers, the authority engine 219assigned Dark Avenger a low reputation. Neither Dark Avenger nor SaraJohnson is associated with the reputation assigned to FoodGirl1. Bytreating each persona separately, the user is able to act as independentpersonas with different personalities. Likewise, if a persona's contentwas generated by several individuals its reputation reflects theaggregate contributions of the persona.

The user interface engine 230 is software including routines forgenerating a user interface that allows the input of the information forregistering an account and a plurality of personas, receiving aselection of persona and generating a display for the selected persona.In one embodiment, the user interface engine 230 is a set ofinstructions executable by the processor 235 to provide thefunctionality described below for displaying the selected persona. Inanother embodiment, the user interface engine 230 is stored in thememory 237 of the computing device 200 and is accessible and executableby the processor 235. In either embodiment, the user interface engine230 is adapted for cooperation and communication with the processor 235and other components of the computing device 200 via signal line 261.

User Interface Engine 230

Turning now to the user interface engine 230, FIG. 3 is a graphicrepresentation 300 of a user interface that is generated by the userinterface engine 230 for creating personas for a user. In this example,the user can switch between the profile 302, personas 304, news 306,mail 309, videos 311, advertisements 313, blogs 315 and settings 317. Byclicking personas 304, the user Sara Johnson 301 views the create apersona tab 319 by inputting a name of the persona 321, uploading apicture 323, submitting a description 325, choosing a visibility level327, selecting a permission 329 and providing a group of people whom shewants to share acting as the persona with, e.g., selected friends. Inorder to select a permission, the user selects from allowing allfriends, allowing chosen friends, allowing all users and allowing anyoneto determine who can see the user's real identity. The visibility level327 is chosen among the public options as an alias and selectivelyvisible. To further choose the friends whom the persona is visible to,the user clicks drawdown selection list 331 to choose all friends orselected friends who can see the persona name. By clicking the createbutton 333, the persona is created for Sara Johnson.

FIG. 4 is a graphic representation 400 of a user interface that isgenerated by the user interface engine 230 for displaying the user asone of the personas. When the user clicks the dropdown arrow 407 fordisplaying the personas, the user interface engine 230 displays a listof personas (Dark Avenger 409, Sara Johnson 411, FoodGirl1 413 andOne-Time Anonymous 419) for selecting which persona is associated with acomment for the user Sara Johnson. In this example, the user selectsFoodGirl1 by clicking the choice box “FoodGirl1” 415 and the userinterface engine 230 displays a list of visibility levels 417 when theuser clicks the dropdown arrow in the box. The public visibility levelis bolded because when creating the persona FoodGirl1, the user selectedpublic as the default visibility level. The user confirms the defaultvisibility level by not selecting the dropdown box and changes thevisibility level by clicking the “visible to” option. The user interfacedisplays an option for further limiting visibility of the persona todifferent groups, such as all friends or specific friends. The one-timeanonymous option allows the user to post anonymously. The post is notassociated with a unique account and, as a result, the series ofcomments posted by the user as an anonymous user are not tracked. Inanother embodiment, anonymous posts are tracked and associated with theposting user but not displayed as such. In this embodiment responses tothe anonymous post can be displayed in in the posting user's stream(e.g. in a stream—“JoJo1977 responded to your anonymous post”).Additionally, an anonymous post could be modified by the poster toreveal the real identity of the poster of that comment at a later time.

In this example, the user's activity is submitting a comment 405 for ablog post 403 that is displayed when the user switches to blogs 401. Inother examples, the system displays the user as one of the personas whenthe user does other activities, such as submitting a post, uploading apicture or a video, sending a message, etc. These activities aredisplayed with one of the personas or as anonymous according to theselected visibility level.

Methods

Referring now to FIGS. 5-7, various embodiments of the method of thespecification will be described. FIG. 5 is a flow diagram 500 of oneembodiment of a method for generating personas for a user account. Theuser interface engine 230 generates 502 a user interface for registeringfor an account and receives 504 a request with information forregistering the account. For example, the user provides a name, an emailaddress and a password. The request and information for the account arerelayed to the account engine 207 via the communication engine 201. Oncethe account engine 207 receives the request and the information, theaccount engine 207 creates 506 the account corresponding to the requestand the information. In one embodiment, the account engine 207 generatesa file to store the account information. In another embodiment, theaccount engine 207 saves the account information into a database as userinformation 240 and creates a table including an entry for mapping theaccount information to the account. If a table for mapping accountinformation to accounts already exists, the account engine 207 appendsan entry in the table for mapping the received account information tothe new account.

The account engine 207 also receives and associates 508 profileinformation with the account. The profile information includes pictures,education and work experiences, interests and other personal informationfor the user. Similarly, in one embodiment, the account engine 207 mapsthe profile information to the account by adding an entry in the tableor by creating a new table. In another embodiment, the account engine207 saves the profile information as user information 240.

The persona engine 207 receives 510 information for generating personasfrom the user interface via the communication engine 201. Theinformation for each persona includes a name, a picture, a description,a permission and a sharing property. Optionally, the informationincludes a visibility level. In such a case, the account engine 207applies 512 visibility levels to the personas based on a default or auser preference. The account engine 207 associates 514 the personainformation with the account either by saving the persona information inthe account file or by adding an entry in the table for mapping thepersona information to the account.

Optionally, the account engine 207 generates 516 a file for the accountusing account information, profile and persona information afterreceiving them all. The account engine 207 stores 518 the file in thememory 237, for example, as user information 240.

FIG. 6 is a flow diagram 600 of one embodiment of a method forgenerating a user interface for displaying a persona. The persona engine213 receives 602 a request to display all personas of a user viacommunication engine 201. The persona engine 213 retrieves 604 the useraccount from the memory 237. In one embodiment, the persona engine 213retrieves the account file including the account information, profileand personas information from the user info 240. In another embodiment,the persona engine 213 retrieves the account and all the informationfrom a database in the user info 240 by querying a table for mapping theinformation to the account.

In one embodiment, the persona engine 213 transmits the account and allthe information to the user interface engine 230 through thecommunication engine 201. The user interface engine 230 displays 606 thepersonas for the user to choose one from them. The user interface engine230 receives 608 a selection of a persona from the user and alsoreceives 610 a visibility level for the selected persona. In oneembodiment, the user interface engine 230 transmits the visibility levelfor the selected persona to the authority engine 219 and the authorityengine 219 determines the appearance of the selected persona based onthe visibility level. For example, if the visibility level is selectedto be public, then the selected persona is determined to appear with theactivity of the user, such as a comment, no matter who views thecomment, i.e. the selected persona is visible to anyone. The authorityengine 219 transmits the determination back to the user interface engine230 and the user interface engine 230 displays the persona according tothe visibility level (i.e., the determination of the appearance of theselected persona).

FIG. 7 is a flow diagram 700 of one embodiment of a method for sharing apersona between users. The persona engine 213 receives 702 a request toshare a shared persona from a user. In one embodiment, the personaengine 213 receives the request from the user interface engine 230 viathe communication engine 201. The communication engine 201 sends 704 aninquiry to each friend the user wants to share the persona with andreceives 706 the answer from the friend.

If the friend who receives the inquiry accepts 705 the offer of sharingthe persona and thus the answer is yes, the persona engine 213associates 708 the user information 240 for the shared persona with thefriend's account. In one embodiment, the persona engine 213 stores theinformation for the shared persona with the friend's account file. Inanother embodiment, the persona engine 213 adds an entry in the tablefor mapping the information of the shared persona to the friend'saccount. Either way, the shared persona is associated with the friend.The user interface engine 230 generates 710 a user interface fordisplaying the information for the shared persona to the friend. If theanswer is no, the process ends and, in one embodiment, the personaengine 213 generates a notification that is incorporated into the userinterface generated by the user interface engine 230 that the offer wasnot accepted.

The foregoing description of the embodiments of the specification hasbeen presented for the purposes of illustration and description. It isnot intended to be exhaustive or to limit the specification to theprecise form disclosed. Many modifications and variations are possiblein light of the above teaching. It is intended that the scope of thedisclosure be limited not by this detailed description, but rather bythe claims of this application. As will be understood by those familiarwith the art, the specification may be embodied in other specific formswithout departing from the spirit or essential characteristics thereof.Likewise, the particular naming and division of the modules, routines,features, attributes, methodologies and other aspects are not mandatoryor significant, and the mechanisms that implement the specification orits features may have different names, divisions and/or formats.Furthermore, as will be apparent to one of ordinary skill in therelevant art, the modules, routines, features, attributes, methodologiesand other aspects of the disclosure can be implemented as software,hardware, firmware or any combination of the three. Also, wherever acomponent, an example of which is a module, of the specification isimplemented as software, the component can be implemented as astandalone program, as part of a larger program, as a plurality ofseparate programs, as a statically or dynamically linked library, as akernel loadable module, as a device driver, and/or in every and anyother way known now or in the future to those of ordinary skill in theart of computer programming. Additionally, the disclosure is in no waylimited to implementation in any specific programming language, or forany specific operating system or environment. Accordingly, thedisclosure is intended to be illustrative, but not limiting, of thescope of the specification, which is set forth in the following claims.

1. A computer-implemented method for generating a plurality of personasfor an account of a user of a social network performed on one or morecomputing devices, the method comprising: receiving, using the one ormore computing devices, information for the plurality of personas fromthe user; associating the information for the plurality of personas tothe account of the user; predicting which of the plurality of personasis more likely to be chosen by the user and arranging the plurality ofpersonas based on a likelihood of selection by the user; receiving aselection of one of the plurality of personas from the user;determining, using the one or more computing devices, an appearance ofthe selected persona; and providing the selected persona for display tothe user.
 2. The method of claim 1, wherein the plurality of personasinclude a visibility level of at least one of public, public over athreshold age, visible to selected users and hidden from everyone. 3.The method of claim 2, wherein the visible to selected users visibilitylevel further comprises at least one of being visible to all friends andbeing visible to selected friends.
 4. The method of claim 1, wherein theinformation for the plurality of personas comprises at least one of aname, a picture, a description, a visibility level, a permission and asharing property.
 5. The method of claim 4, further comprisingdetermining an appearance of the selected persona based at least in parton the visibility level.
 6. The method of claim 4, wherein thepermission comprises allowing at least one of all friends, selectedfriends, all account holders and anyone to access the user's realidentity.
 7. The method of claim 1, further comprising associating oneof the plurality of personas with at least one other account holderbased at least in part on a sharing property, the sharing propertycomprising at least one of associating one of the plurality of personaswith other account holders and associating one of the plurality ofpersonas with selected friends.
 8. The method of claim 1, furthercomprising generating a reputation for each persona based at least inpart on activity or feedback associated with the persona.
 9. The methodof claim 1, wherein the plurality of personas comprises at least one ofthe user's real identity, an alter ego and a one-time anonymousidentity.
 10. The method of claim 1, further comprising transmitting theinformation for the selected persona in response to the user submittingat least one of a post, a comment, a picture, a video, a message, anarticle and a game.
 11. The method of claim 1, further comprisingassigning a reputation to the selected persona according to at least oneof a number of views, a number of comments and a number of indicationsof approval of at least one of the post, the comment, the picture, thevideo, the message, the article and the game submitted by the selectedpersona.
 12. A system for generating a plurality of personas for anaccount of a user of a social network, the system comprising: one ormore processors; an account engine stored on a memory and executable bythe one or more processors, the account engine for receiving informationfor the plurality of personas from the user and associating theinformation for the plurality of personas to the account of the user; apersona engine stored on the memory and executable by the one or moreprocessors-coupled to the account engine, the persona engine forpredicting which of the plurality of personas is more likely to bechosen by the user, arranging the plurality of personas based on alikelihood of selection by the user, receiving a selection from the userof one of the plurality of personas and providing the selected personafor display to the user; and an authority engine stored on the memoryand executable by the one or more processors, the authority engine fordetermining an appearance of the selected persona.
 13. The system ofclaim 12, wherein the plurality of personas include a visibility levelof at least one of public, public over a threshold age, visible toselected users and hidden from everyone.
 14. The system of claim 13,wherein the visible to selected users visibility level further comprisesat least one of being visible to all friends and being visible toselected friends.
 15. The system of claim 12, wherein the informationfor the plurality of personas comprises at least one of a name, apicture, a description, a visibility level, a permission and a sharingproperty.
 16. The system of claim 12, wherein the persona engineassociates one of the plurality of personas with at least one otheraccount holder based at least in part on the sharing property, thesharing property comprising at least one of associating one of theplurality of personas with other account holders and associating one ofthe plurality of personas with selected friends.
 17. The system of claim12, wherein the authority engine determines an appearance of theselected persona based at least in part on a visibility level associatedwith the selected persona.
 18. The system of claim 12, wherein theauthority engine authorizes other account holders to access the user'sreal identity based at least in part on a permission, the permissioncomprising allowing at least one of all friends, selected friends, allaccount holders and anyone to access the user's real identity.
 19. Thesystem of claim 12, wherein the plurality of personas comprises at leastone of the user's real identity, an alter ego and a one-time anonymousidentity.
 20. The system of claim 12, wherein the persona enginetransmits the information for the selected persona in response to theuser submitting at least one of a post, a comment, a picture, a video, amessage, an article and a game.
 21. The system of claim 12, wherein theauthority engine assigns a reputation to the selected persona accordingto at least one of a number of views, a number of comments and a numberof indications of approval of at least one of the post, the comment, thepicture, the video, the message, the article and the game submitted bythe selected persona.
 22. A computer program product comprising anon-transitory computer useable medium including a computer readableprogram, wherein the computer readable program when executed on acomputer causes the computer to perform steps comprising: receivinginformation for a plurality of personas from a user; associating theinformation for the plurality of personas to an account of the user;predicting which of the plurality of personas is more likely to bechosen by the user and arranging the plurality of personas based on alikelihood of selection by the user; receiving a selection of one of theplurality of personas from the user; determining an appearance of theselected persona; and providing the selected persona to the user. 23.The computer program product of claim 22, wherein the plurality ofpersonas include a visibility level of at least one of public, publicover a threshold age, visible to selected users and hidden fromeveryone.
 24. The computer program product of claim 23, wherein thevisible to selected users visibility level further comprises at leastone of being visible to all friends and being visible to selectedfriends.
 25. The computer program product of claim 22, wherein theinformation for the plurality of personas comprises at least one of aname, a picture, a description, a visibility level, a permission and asharing property.
 26. The computer program product of claim 25, whereinthe computer readable program when executed on the computer causes thecomputer to further determine an appearance of the selected personabased at least in part on the visibility level.
 27. The computer programproduct of claim 25, wherein the permission comprises allowing at leastone of all friends, selected friends, all account holders and anyone toaccess the user's real identity.
 28. The computer program product ofclaim 22, wherein the computer readable program when executed on thecomputer causes the computer to further associate one of the pluralityof personas with at least one other account holder based at least inpart on a sharing property, the sharing property comprising at least oneof associating one of the plurality of personas with other accountholders and associating one of the plurality of personas with selectedfriends.
 29. The computer program product of claim 22, wherein thecomputer readable program when executed on the computer causes thecomputer to further generate a reputation for each persona based atleast in part on activity or feedback associated with the persona. 30.The computer program product of claim 22, wherein the plurality ofpersonas comprises at least one of the user's real identity, an alterego and a one-time anonymous identity.
 31. The computer program productof claim 22, wherein the computer readable program when executed on thecomputer causes the computer to further transmit the information for theselected persona in response to the user submitting at least one of apost, a comment, a picture, a video, a message, an article and a game.32. The computer program product of claim 22, wherein the computerreadable program when executed on the computer causes the computer tofurther assign a reputation to the selected persona according to atleast one of a number of views, a number of comments and a number ofindications of approval of at least one of the post, the comment, thepicture, the video, the message, the article and the game submitted bythe selected persona.